//
//  YYFileManager.h
//  XinMi_Java
//
//  Created by 蓓蕾 on 2022/4/25.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface YYFileManager : NSString

/** 获取Home目录路径 */
+(NSString *)getHomeDirectory;

/** 获取Temp目录路径 */
+(NSString *)getTempDirectory;

/** 获取Documents目录路径 */
+(NSString *)getDocumentsDirectory;

/** 获取Library目录路径 */
+(NSString *)getLibraryDirectory;

/** 获取Cache目录路径 */
+(NSString *)getCacheDirectory;

/** 追加目录或文件 */
+(NSString *)appendingPathComponent:(NSString *)path withAppendingPath:(NSString *)appendingPath;

/** 获取路径的组成部分 */
+(NSArray *)getPathComponents:(NSString *)path;

/** 获取路径的最后一个组成部分 */
+(NSString *)getLastPathComponents:(NSString *)path;

/** 删除路径最后的一个组成部分 */
+(NSString *)deleteLastPathComponents:(NSString *)path;

/** 获取路径最后部分的扩展名 */
+(NSString *)getPathExtension:(NSString *)path;

/** 删除路径的扩展名 */
+(NSString *)deletePathExtension:(NSString *)path;

/** 在路径后追加扩展名 */
+(NSString *)appendingPathExtension:(NSString *)path withExtension:(NSString *)extension;

/// 将字典保存到指定路径下 - 保存的是plist文件
/// @param dictionary 需要保存的字典
/// @param filePath 需要保存的路径
+(BOOL)saveDictionaryToFile:(NSDictionary *)dictionary WithFilePath:(NSString *)filePath;

/// 将数组保存到指定路径下 - 保存的是plist文件
/// @param array 需要保存的数组
/// @param filePath 需要保存的路径
+(BOOL)saveArrayToFile:(NSArray *)array WithFilePath:(NSString *)filePath;

/// 将对象保存到指定路径下 - 保存的是plist文件
/// @param dictionary 需要保存的对象
/// @param filePath 需要保存的路径
+(BOOL)saveObjectToFile:(id)dictionary WithFilePath:(NSString *)filePath;

/// 从指定路径下获取一个字典对象
/// @param filePath 字典对象所在路径
+(NSDictionary *)getDictionaryFromFilePath:(NSString *)filePath;

/// 从指定路径下获取一个数组对象
/// @param filePath 数组对象所在路径
+(NSArray *)getArrayFromFilePath:(NSString *)filePath;

/// 从指定路径下获取一个对象
/// @param filePath 对象所在路径
+(id)getObjectFromFilePath:(NSString *)filePath;
/// 删除指定文件
/// @param filePath 文件路径
+(BOOL)deleteFileWithFilePath:(NSString *)filePath;
+(BOOL)createFileWithFilePath:(NSString *)filePath;

/// 字典转JSON - 保留格式 - 方便阅读
/// @param dict 需要转换成JSON的字典
+(NSString *)toJsonStrWithDictionary:(NSDictionary *)dict;


/// 字典转JSON - 不保留格式
/// @param dict 需要转换成JSON的字典
+(NSString *)toJsonStrWithDictionary2:(NSDictionary *)dict;

/// JSON转字典
/// @param jsonStr 需要转换成字典的JSON
+(NSDictionary *)toDctionaryWithJsonString:(NSString *)jsonStr;

@end

NS_ASSUME_NONNULL_END
